<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    /* 
     对象中存储属性的区域实际有两个：
      1.对象自身
        - 直接通过对象所添加的属性，位于对象自身中
        - 在类中通过x = y 的形式添加的属性，位于对象自身中
      2.原型对象（prototype）
        - 对象中还有一些内容，会存储到其他的对象中（原型对象）
        - 在对象中会有一个属性用来存储原型对象，这个属性叫做__proto__
        - 原型对象也负责为对象存储属性：
          - 当我们访问对象中的属性时，会优先访问对象自身的属性，如果没有，则会访问原型对象中的属性
        - 添加到原型对象中的情况：
          1.在类中通过xxx(){} 方式添加的方法，位于原型中
          2.主动向原型中添加的属性或方法
  */
    class Person {
      say() {} //方法在原型中
      eat = function () {}; // 在实例中
    }
    Person.prototype.aa = 20;
    let p1 = new Person();
    p1.aa = 1;
    console.log(p1);
  </script>
</html>
